// 引入插件
const plugin = requirePlugin('WechatSI')
// 获取 WechatSI 的管理对象
const manager = plugin.getRecordRecognitionManager()

Page({
  data: {
    value: '',
    result: '',
    buttons: [{
      text: '取消'
    }, {
      text: '确认'
    }]
  },

  onLoad() {
    // 监听 manager 的一些事件
    manager.onRecognize = function (res) {
      console.log("current result", res.result)
    }
    manager.onStop = function (res) {
      console.log("record file path", res.tempFilePath)
      console.log("result", res.result)
    }
    manager.onStart = function (res) {
      console.log("成功开始录音识别", res)
    }
    manager.onError = function (res) {
      console.error("error msg", res.msg)
    }
  },

  handleStart() {
    // 开始录音
    manager.start({
      lang: "zh_CN"
    })
  },

  handleStop() {
    manager.stop()
  },

  handleTran() {
    // 翻译
    plugin.translate({
      lfrom: "zh_CN",
      lto: "en_US",
      tts: true, // 是否对翻译的结果做语音合成
      content: this.data.value, // 要翻译的内容
      success: (res) => {
        if (res.retcode == 0) {
          console.log('success', res)
          console.log("result", res.result)

          this.setData({
            result: res.result
          })
          // 翻译完成，读出翻译结果
          this.play(res.filename)
        } else {
          console.warn("翻译失败", res)
        }
      },
      fail: function (res) {
        console.log("网络失败", res)
      }
    })
  },

  // 播放翻译结果
  play(filename) {
    // 创建一个 innerAuditoContext 上下文对象
    const audio = wx.createInnerAudioContext()
    // 设置默认地址
    audio.src = filename
    // 开始播放
    audio.play()
  }
})